package com.jrx.anytxn.param.dto.product;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 表:pr_pretermination_fee_table
 *
 * @author 90443
 * @date 2019-07-29
 */
@ApiModel(description = "提前结清费表PrPreterminationFeeTableReq")
public class PrPreterminationFeeTableReq implements Serializable {

    private static final long serialVersionUID = 4849651632884214448L;
    /**
     * 自增主键
     * 表字段:id
     */
    @ApiModelProperty(value = "主键id", name = "id")
    private Long id;

    /**
     * 租戶id
     * 表字段:tenant_id
     */
    @ApiModelProperty(value = "租户ID")
    private String tenantId;

    /**
     * 费用表id
     * 表字段:pretermination_fee_id
     */
    @ApiModelProperty(value = "费用表id", name = "preterminationFeeId")
    private String preterminationFeeId;

    /**
     * 费用表机构号
     * 表字段:organization_id
     */
    @ApiModelProperty(value = "费用表机构号", name = "organizationId")
    private String organizationId;

    /**
     * 中文名称
     * 表字段:chinese_name
     */
    @ApiModelProperty(value = "中文名称", name = "chineseName")
    private String chineseName;

    /**
     * 英文名称
     * 表字段:english_name
     */
    @ApiModelProperty(value = "英文名称", name = "englishName")
    private String englishName;

    /**
     * 状态（1-正常，0-失效)
     * 表字段:status
     */
    @ApiModelProperty(value = "状态（1-正常，0-失效)", name = "status")
    private String tableStatus;

    /**
     * 费用表类型	(0 = 贷款手续费 1 = 滞纳金 2 = 提前结清手续费 3 = 提前还款手续费 4 = 资金源手续费 5 = 合作伙伴手续费)
     * 表字段:type
     */
    @ApiModelProperty(value = "费用表类型\t(0 = 贷款手续费 1 = 滞纳金 2 = 提前结清手续费 3 = 提前还款手续费 4 = 资金源手续费 5 = 合作伙伴手续费)", name = "type")
    private String tableType;

    /**
     * 提前结清控制标志(0 = 不允许提前结清 1 = 允许提前结清 默认为1)
     * 表字段:control_option
     */
    @ApiModelProperty(value = "提前结清控制标志(0 = 不允许提前结清 1 = 允许提前结清 默认为1)", name = "controlOption")
    private String controlOption;

    /**
     * 免收费用需完成的期数
     * 表字段:waive_fee_tenor
     */
    @ApiModelProperty(value = "免收费用需完成的期数", name = "waiveFeeTenor")
    private Integer waiveFeeTenor;

    /**
     * 费用收取方式(0 = 不收取  1 = 按所有剩余期数收取 2 = 按剩余期数中X期收取)
     * 表字段:fee_method
     */
    @ApiModelProperty(value = "费用收取方式(0 = 不收取  1 = 按所有剩余期数收取 2 = 按剩余期数中X期收取)", name = "feeMethod")
    private String feeMethod;

    /**
     * 收取费用期数（X值）(当charge_method = 2时有效)
     * 表字段:fee_tenor
     */
    @ApiModelProperty(value = "收取费用期数（X值）(当charge_method = 2时有效)", name = "feeTenor")
    private Integer feeTenor;

    /**
     * 利息收取方式 0 = 不收取 1 = 按所有剩余期数收取 2 = 按剩余期数中Y期收取
     * 表字段:int_method
     */
    @ApiModelProperty(value = "利息收取方式 0 = 不收取 1 = 按所有剩余期数收取 2 = 按剩余期数中Y期收取", name = "intMethod")
    private String intMethod;

    /**
     * 收取利息期数（Y值)	(当interest_method = 2时有效)
     * 表字段:int_tenor
     */
    @ApiModelProperty(value = "收取利息期数（Y值)\t(当interest_method = 2时有效)", name = "intTenor")
    private Integer intTenor;

    /**
     * 费用收取方式(0 = 按比例收取 1 = 固定金额收取)
     * 表字段:fee_charge_option
     */
    @ApiModelProperty(value = "费用收取方式(0 = 按比例收取 1 = 固定金额收取)", name = "feeChargeOption")
    private String feeChargeOption;

    /**
     * 费用收取比例(fee_charge_option = 0时有效)
     * 表字段:fee_charge_percent
     */
    @ApiModelProperty(value = "费用收取比例(fee_charge_option = 0时有效)", name = "feeChargePercent")
    private BigDecimal feeChargePercent;

    /**
     * 费用固定值(fee_charge_option = 1时有效)
     * 表字段:fee_charge_amount
     */
    @ApiModelProperty(value = "费用固定值(fee_charge_option = 1时有效)", name = "feeChargeAmount")
    private BigDecimal feeChargeAmount;

    /**
     * 费用产生利息标志
     * 表字段:int_on_fee_flag
     */
    @ApiModelProperty(value = "费用产生利息标志", name = "intOnFeeFlag")
    private String intOnFeeFlag;

    /**
     * 最大费用值
     * 表字段:max_amount
     */
    @ApiModelProperty(value = "最大费用值", name = "maxAmount")
    private BigDecimal maxAmount;

    /**
     * 最小费用值
     * 表字段:min_amount
     */
    @ApiModelProperty(value = "最小费用值", name = "minAmount")
    private BigDecimal minAmount;

    /**
     * 交易码
     * 表字段:txn_code
     */
    @ApiModelProperty(value = "交易码", name = "txnCode")
    private String txnCode;

    /**
     * 最后更新操作员
     * 表字段:update_by
     */
    private String updateBy;

    /**
     * 交易当天是否允许提前结清 0 = 不允许提前结清 1 = 允许提前结清 默认0
     * 表字段：loan_day_option
     */
    @ApiModelProperty(value = "交易当天是否允许提前结清", name = "loanDayOption")
    private String loanDayOption;

    /**
     * 逾期是否允许提前结清 0 = 不允许提前结清 1 = 允许提前结清 默认0
     * 表字段：loan_day_option
     */
    @ApiModelProperty(value = "逾期是否允许提前结清", name = "逾期是否允许提前结清")
    private String delqOption;


    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    /**
     * 获取自增主键
     *
     * @return id Long
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置自增主键
     *
     * @param id 自增主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取费用表id
     *
     * @return preterminationFeeId String
     */
    public String getPreterminationFeeId() {
        return preterminationFeeId;
    }

    /**
     * 设置费用表id
     *
     * @param preterminationFeeId 费用表id
     */
    public void setPreterminationFeeId(String preterminationFeeId) {
        this.preterminationFeeId = preterminationFeeId;
    }

    /**
     * 获取费用表机构号
     *
     * @return organizationId String
     */
    public String getOrganizationId() {
        return organizationId;
    }

    /**
     * 设置费用表机构号
     *
     * @param organizationId 费用表机构号
     */
    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    /**
     * 获取中文名称
     *
     * @return chineseName String
     */
    public String getChineseName() {
        return chineseName;
    }

    /**
     * 设置中文名称
     *
     * @param chineseName 中文名称
     */
    public void setChineseName(String chineseName) {
        this.chineseName = chineseName;
    }

    /**
     * 获取英文名称
     *
     * @return englishName String
     */
    public String getEnglishName() {
        return englishName;
    }

    /**
     * 设置英文名称
     *
     * @param englishName 英文名称
     */
    public void setEnglishName(String englishName) {
        this.englishName = englishName;
    }

    public String getTableStatus() {
        return tableStatus;
    }

    public void setTableStatus(String tableStatus) {
        this.tableStatus = tableStatus;
    }

    public String getTableType() {
        return tableType;
    }

    public void setTableType(String tableType) {
        this.tableType = tableType;
    }

    /**
     * 获取提前结清控制标志(0 = 不允许提前结清 1 = 允许提前结清 默认为1)
     *
     * @return controlOption String
     */
    public String getControlOption() {
        return controlOption;
    }

    /**
     * 设置提前结清控制标志(0 = 不允许提前结清 1 = 允许提前结清 默认为1)
     *
     * @param controlOption 提前结清控制标志(0 = 不允许提前结清 1 = 允许提前结清 默认为1)
     */
    public void setControlOption(String controlOption) {
        this.controlOption = controlOption;
    }

    /**
     * 获取免收费用需完成的期数
     *
     * @return waiveFeeTenor Integer
     */
    public Integer getWaiveFeeTenor() {
        return waiveFeeTenor;
    }

    /**
     * 设置免收费用需完成的期数
     *
     * @param waiveFeeTenor 免收费用需完成的期数
     */
    public void setWaiveFeeTenor(Integer waiveFeeTenor) {
        this.waiveFeeTenor = waiveFeeTenor;
    }

    /**
     * 获取费用收取方式(0 = 不收取  1 = 按所有剩余期数收取 2 = 按剩余期数中X期收取)
     *
     * @return feeMethod String
     */
    public String getFeeMethod() {
        return feeMethod;
    }

    /**
     * 设置费用收取方式(0 = 不收取  1 = 按所有剩余期数收取 2 = 按剩余期数中X期收取)
     *
     * @param feeMethod 费用收取方式(0 = 不收取  1 = 按所有剩余期数收取 2 = 按剩余期数中X期收取)
     */
    public void setFeeMethod(String feeMethod) {
        this.feeMethod = feeMethod;
    }

    /**
     * 获取收取费用期数（X值）(当charge_method = 2时有效)
     *
     * @return feeTenor Integer
     */
    public Integer getFeeTenor() {
        return feeTenor;
    }

    /**
     * 设置收取费用期数（X值）(当charge_method = 2时有效)
     *
     * @param feeTenor 收取费用期数（X值）(当charge_method = 2时有效)
     */
    public void setFeeTenor(Integer feeTenor) {
        this.feeTenor = feeTenor;
    }

    /**
     * 获取利息收取方式 0 = 不收取 1 = 按所有剩余期数收取 2 = 按剩余期数中Y期收取
     *
     * @return intMethod String
     */
    public String getIntMethod() {
        return intMethod;
    }

    /**
     * 设置利息收取方式 0 = 不收取 1 = 按所有剩余期数收取 2 = 按剩余期数中Y期收取
     *
     * @param intMethod 利息收取方式 0 = 不收取 1 = 按所有剩余期数收取 2 = 按剩余期数中Y期收取
     */
    public void setIntMethod(String intMethod) {
        this.intMethod = intMethod;
    }

    /**
     * 获取收取利息期数（Y值)	(当interest_method = 2时有效)
     *
     * @return intTenor Integer
     */
    public Integer getIntTenor() {
        return intTenor;
    }

    /**
     * 设置收取利息期数（Y值)	(当interest_method = 2时有效)
     *
     * @param intTenor 收取利息期数（Y值)	(当interest_method = 2时有效)
     */
    public void setIntTenor(Integer intTenor) {
        this.intTenor = intTenor;
    }

    /**
     * 获取费用收取方式(0 = 按比例收取 1 = 固定金额收取)
     *
     * @return feeChargeOption String
     */
    public String getFeeChargeOption() {
        return feeChargeOption;
    }

    /**
     * 设置费用收取方式(0 = 按比例收取 1 = 固定金额收取)
     *
     * @param feeChargeOption 费用收取方式(0 = 按比例收取 1 = 固定金额收取)
     */
    public void setFeeChargeOption(String feeChargeOption) {
        this.feeChargeOption = feeChargeOption;
    }

    /**
     * 获取费用收取比例(fee_charge_option = 0时有效)
     *
     * @return feeChargePercent BigDecimal
     */
    public BigDecimal getFeeChargePercent() {
        return feeChargePercent;
    }

    /**
     * 设置费用收取比例(fee_charge_option = 0时有效)
     *
     * @param feeChargePercent 费用收取比例(fee_charge_option = 0时有效)
     */
    public void setFeeChargePercent(BigDecimal feeChargePercent) {
        this.feeChargePercent = feeChargePercent;
    }

    /**
     * 获取费用固定值(fee_charge_option = 1时有效)
     *
     * @return feeChargeAmount BigDecimal
     */
    public BigDecimal getFeeChargeAmount() {
        return feeChargeAmount;
    }

    /**
     * 设置费用固定值(fee_charge_option = 1时有效)
     *
     * @param feeChargeAmount 费用固定值(fee_charge_option = 1时有效)
     */
    public void setFeeChargeAmount(BigDecimal feeChargeAmount) {
        this.feeChargeAmount = feeChargeAmount;
    }

    /**
     * 获取费用产生利息标志
     *
     * @return intOnFeeFlag String
     */
    public String getIntOnFeeFlag() {
        return intOnFeeFlag;
    }

    /**
     * 设置费用产生利息标志
     *
     * @param intOnFeeFlag 费用产生利息标志
     */
    public void setIntOnFeeFlag(String intOnFeeFlag) {
        this.intOnFeeFlag = intOnFeeFlag;
    }

    /**
     * 获取最大费用值
     *
     * @return maxAmount BigDecimal
     */
    public BigDecimal getMaxAmount() {
        return maxAmount;
    }

    /**
     * 设置最大费用值
     *
     * @param maxAmount 最大费用值
     */
    public void setMaxAmount(BigDecimal maxAmount) {
        this.maxAmount = maxAmount;
    }

    /**
     * 获取最小费用值
     *
     * @return minAmount BigDecimal
     */
    public BigDecimal getMinAmount() {
        return minAmount;
    }

    /**
     * 设置最小费用值
     *
     * @param minAmount 最小费用值
     */
    public void setMinAmount(BigDecimal minAmount) {
        this.minAmount = minAmount;
    }

    /**
     * 获取交易码
     *
     * @return txnCode String
     */
    public String getTxnCode() {
        return txnCode;
    }

    /**
     * 设置交易码
     *
     * @param txnCode 交易码
     */
    public void setTxnCode(String txnCode) {
        this.txnCode = txnCode;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public String getLoanDayOption() {
        return loanDayOption;
    }

    public void setLoanDayOption(String loanDayOption) {
        this.loanDayOption = loanDayOption;
    }

    /**
     * 获取 逾期是否允许提前结清 0 = 不允许提前结清 1 = 允许提前结清 默认0      表字段：loan_day_option
     *
     * @return delqOption 逾期是否允许提前结清 0 = 不允许提前结清 1 = 允许提前结清 默认0      表字段：loan_day_option
     */
    public String getDelqOption() {
        return this.delqOption;
    }

    /**
     * 设置 逾期是否允许提前结清 0 = 不允许提前结清 1 = 允许提前结清 默认0      表字段：loan_day_option
     *
     * @param delqOption 逾期是否允许提前结清 0 = 不允许提前结清 1 = 允许提前结清 默认0      表字段：loan_day_option
     */
    public void setDelqOption(String delqOption) {
        this.delqOption = delqOption;
    }
}